package __inicio;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.SQLException;

import utils.defines;

public class inicio extends defines{

	static logs.generador logs = new logs.generador();
	static conector.mysql mysql = new conector.mysql();
	static utils.aplicacion utils = new utils.aplicacion();
	
	 public static void main (String[] args) throws SQLException, IOException, Exception{
		 logs.escribir("EMPEZAMOS PROCESO");
//		 mysql.dropDatabase();
//		 mysql.crearBaseDatos();
//		 utils.crearTablas();
		// mysql.crearIndicesBaseDatos(); // Crea todos los indices de las tablas
		 utils.crearRegistros();
		 //escogerOpcion();
		 mostrarResultadoFinal();
		 conector.mysql.cerrarConexionMysql();
		 logs.escribir("FINALIZAMOS PROCESO");
		 logs.escribir("REGISTRO CREADO EN C:/LOGS."); 		 	
	 }

	 //SELECT IF('federacion2' IN(SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA),TRUE,FALSE) AS existe
	 public static void mostrarResultadoFinal() throws IOException, SQLException {
		 	logs.escribir("REGISTRO TOTAL");
		 	logs.escribir("COMUNIDADES-> "+mysql.contarRegistros("comunidades")+"/18");
		 	logs.escribir("PROVINCIAS-> "+mysql.contarRegistros("provincias")+"/52");
			logs.escribir("POBLACIONES-> "+mysql.contarRegistros("poblaciones")+"/8112");
			logs.escribir("CATEGORIAS-> "+mysql.contarRegistros("categorias")+"/7");
			logs.escribir("COMPETICIONES-> "+mysql.contarRegistros("competiciones")+"/384");
			logs.escribir("CLUBS-> "+mysql.contarRegistros("clubs")+"/8112");
			logs.escribir("EQUIPOS-> "+mysql.contarRegistros("equipos")+"/7680");
			logs.escribir("PARTIDOS -> "+mysql.contarRegistros("partidos")+"/145920");
		}

	 private static void escogerOpcion() throws SQLException, Exception{
		//COMPROBAR SI EXISTE BAR DATOS
		 System.out.println("");
		 System.out.println("ESTADO BASE DE DATOS FEDERACION -> "+mysql.comprobacionBaseDatos());
		 System.out.println("");
		 System.out.println("ESCRIBIR POR CONSOLA LA OPCION A EJECUTAR");
		 System.out.println("");
		 System.out.println("1 - ELIMINAR BASE DE DATOS");
		 System.out.println("2 - CREAR BASE DE DATOS");
		 System.out.println("3 - EJECUTAR PROCESO COMPLETO");
		 System.out.println("4 - CREAR TABLAS");
		 System.out.println("5 - CREAR REGISTROS");
		 System.out.println("X - SALIR");
		 
		 InputStreamReader isr = new InputStreamReader(System.in);
		 BufferedReader br = new BufferedReader (isr);
		 String opcion = br.readLine();
		 
		 System.out.println(opcion);
		 if(opcion.equals("1") || opcion.equals("2")){
			 confirmarOpcion(opcion);
		 }
		 if(opcion.equals("3")){
			 ejecutarAplicacionSegunOpcion("3");
		 }
		 if(opcion.equals("5")){
			 crearRegistros();
		 }
		 
	 }

	private static void crearRegistros() throws SQLException, Exception{ 
		 System.out.println("1 - CREAR TODOS LOS REGISTROS");
		 System.out.println("2 - CREAR REGISTROS POBLACIONES");
		 System.out.println("3 - CREAR REGISTROS CLUBS");
		 System.out.println("4 - CREAR REGISTROS EQUIPOS");
		 System.out.println("5 - CREAR REGISTROS PARTIDOS");
		 System.out.println("6 - CREAR REGISTROS CLASIFICACIONES");
	}
	
	public static void confirmarOpcion(String opcion) throws SQLException, Exception{
		 System.out.println("ESTAS SEGURO DE EJECUTAR OPCION:"+opcion+" ? -> ESCRIBIR SI PARA CONTINUAR. NO PARA VOLVER A INICIO");
		 
		 InputStreamReader isr = new InputStreamReader(System.in);
		 BufferedReader br = new BufferedReader (isr);
		 String confirmacion = br.readLine();
		 
		 if(confirmacion.equals("SI") || confirmacion.equals("si")){
			 ejecutarAplicacionSegunOpcion(opcion);
		 }else{
			 Runtime.getRuntime().exec("clear");
			 System.out.println("************************************");
			 System.out.println("**** ERROR AL INTRODUCIR OPCION ****");
			 System.out.println("**** ERROR AL INTRODUCIR OPCION ****");
			 System.out.println("************************************");
			 main(null);
		 }
	}
	 
	public static void ejecutarAplicacionSegunOpcion(String cadena) throws SQLException, Exception {
		switch(cadena) { // Eleige la opcion acorde al numero de mes
			case "1": //eliminar base datos
				System.out.println("Eliminar base datos");
				break;
			case "2":
				System.out.println("CREAR BASE DATOS");
				break;
			case "3":
				System.out.println("EJECUTAR PROCESO COMPLETO");
				break;
			case "4":
				System.out.println("CREAMOS TABLAS Y AÑADIMOS INDICES.");
				break; 
			case "5":
				System.out.println("CREAMOS TODOS LOS REGISTROS.");
				break;	
			default:
				System.out.println("El mes no existe");
			break;
		}
		System.out.println(cadena);		
	}
	 
	 

}

